草庐IT

Java String.split 内存泄漏?

全部标签

windows - 检索进程的内存消耗

我的AutoIt脚本自动执行测试用例。我怀疑某些东西正在泄漏内存。它从10MB开始,当测试用例结束时它达到大约40MB(TaskManager值)。我希望我的AutoIt脚本在每个测试用例之后报告内存消耗。了解差异后,我可能可以找到原因。如何使用AutoIt脚本检索进程的内存消耗? 最佳答案 您正在查找WorkingSetSize,它可能与任务管理器中列出的值不完全相同。根据它的documentation,工作集是在给定时间物理映射到进程上下文的内存量。判断方法如下:$wbemFlagReturnImmediately=0x10$w

c++ - Windows - protected 共享内存

我正在寻找在Windows平台上创建共享内存块的可能性,该平台对除创建共享内存块的进程之外的所有进程都写保护。详细来说,我需要以下内容:进程(1)必须创建一个共享内存块,并且应该能够修改缓冲区。进程(2)应该能够打开并读取创建的共享内存块,但不得具有修改内容的权限。出于安全原因,这很重要。目前我有一个使用CreateFileMapping()和MapViewOfFile()创建共享内存块的解决方案,然后在进程(1)和(2)中具有读写权限,例如:HANDLEhandle=CreateFileMapping(INVALID_HANDLE_VALUE,NULL,PAGE_READWRITE,

winapi - 用于虚拟内存管理的新 Windows 8.1 API : `DiscardVirtualMemory()` vs `VirtualAlloc()` and `MEM_RESET` and `MEM_RESET_UNDO`

Windows8.1/Server2012RC2刚刚引入了用于虚拟内存管理的新API:OfferVirtualMemory()、ReclaimVirtualMemory()、DiscardVirtualMemory()、它们的用法非常简单,只需查看它们的名称即可。我无法理解这些API如何针对VirtualAlloc()以及标志MEM_RESET和MEM_RESET_UNDO工作,以及什么是细微差别。对于OfferVirtualMemory(),MSDN说它与VirtualAlloc()+MEM_RESET非常相似,只是它从工作集,并限制对页面的进一步访问。所以,基本上它限制了对页面的访

windows - 如何限制应用程序可以分配的内存

我需要一种方法来限制服务可以分配的内存量,以防止服务使系统饿死,类似于SQLServer允许您设置“最大服务器内存”的方式。我知道SetProcessWorkingSetSize并不完全符合我的要求,但我正在努力让它按照我认为应该的方式运行。无论我使用什么值,我的测试应用程序的工作集都没有限制。此外,如果我随后立即调用GetProcessWorkingSetSize,则返回的值不是我之前指定的值。这是我的测试应用程序使用的代码:varMinWorkingSet:SIZE_T;MaxWorkingSet:SIZE_T;beginifnotSetProcessWorkingSetSize(

windows - 使用 gflags +ust 可以更快地增加进程内存

在尝试查找Windows应用程序中的一些内存泄漏时,我遇到了gflags的问题。当我打开ust标志(为了收集内存分配堆栈跟踪)时,我的应用程序的内存增加速度比关闭该标志时快得多(它在10分钟内达到800MB最小大约。这与我在关闭标志时获得的50-100MB/天相去甚远。我读到堆栈跟踪的最大值为32MB,所以我想这应该不是问题。计算机是4xIntel(R)Xeon(R)CPUE5410@2.33GHz。如果有人能给我一些提示,我将不胜感激。谢谢! 最佳答案 堆栈跟踪数据库并不是ust标志的唯一影响。它还向每个分配添加至少32个字节,以

windows - WMIprvse 进程在 2008 服务器 R2 上泄漏内存

我有一个在虚拟机上运行的Windows2008R2服务器。我的.NET服务在此服务器上运行,定期查询WMI,例如:从Win32_Service中选择ProcessId...一两天后,WMIprvse占用了500M内存,WMI查询开始出现内存不足异常。这篇文章好像在讲这个问题:"http://support.microsoft.com/kb/958124"我看到其他文章说Microsoft已经意识到这个问题并且不会在下一个主要版本发布之前发布修复程序。http://social.msdn.microsoft.com/Forums/en/netfxbcl/thread/256eb40c-d

python - Windows 上的 Cython 内存 View

尝试在Windows上使用Cython(基于Anaconda的安装,使用TDM-GCC,因为我需要对OpenMP的支持)时,我在使用类型化内存View时遇到了错误。test1.pyxdeftest(intx):passtest2.pyxdeftest(int[:]x):pass这两个模块都可以使用基本的setup.py(使用cythonize)进行编译,但是虽然可以毫无问题地导入test1,但导入test2会引发以下问题:python3-c"importtest2"(",line1,inFile"stringsource",line275,ininittest2(test2.c:131

c++ - 将屏幕截图位图转换为内存中的 jpeg

我想截取整个屏幕的屏幕截图,并想通过网络将其发送到服务器。(服务器将是保存它的那个)我目前正在使用此代码HBITMAPhBitmap=CreateCompatibleBitmap(hScreen,w,h);CImageimage;image.Attach(hBitmap);image.Save(L"screen.jpg");它确实保存了文件,但这不是我想要的。我也不确定如何获取字节,我在考虑GetBits()但文档说它是指向底层位图数据的指针。我想要得到的是我可以通过网络发送并使用服务器保存图像的JPG数据。那么,为什么我不直接使用位图并直接发送呢?因为它有点复杂而且代码很长,你必须得

windows - Rad Studio 10.2.1 内存泄漏 Windows 10 商店

Delphi社区众所周知,RadStudio10.2.1FMX中存在内存泄漏。我确实找到了解决方法:Workaroundforfmxmemoryleaks我想知道一些关于它的事情。这是否只影响FMXWindows?有人告诉我,如果您的应用程序位于windowsstore上,则内存泄漏不是问题,因为windowsstore会终止它们。这是真的?这是他原话:ifyoupublishonWindowsStorethenit'snotneededbecauseallmemoryisautomaticallyfreedbytheStorewhenanappisterminated.

c - 调用 free 后内存使用量不会减少

我有一个使用C的WebSocket服务器,它将在Windows上作为后台进程运行。并且这个过程将接受包含大图像数据(base64格式)的请求。每次收到请求时,都会使用malloc分配内存。并在请求执行后释放。但是当我检查任务管理器时,内存使用并没有减少。此外,当我发送另一个请求时,会分配额外的内存。我的问题是,为什么进程没有释放分配的内存或者重新使用之前分配的内存? 最佳答案 free的底层实现在不同平台上有所不同,但您所看到的很可能是由于惰性内存分配/取消分配。您的操作系统(或内存管理例程)知道您刚刚释放的内存,但由于您的程序很可